package com.qen.wrapper.query.interfaces;

import com.qen.segments.Select;
import com.qen.wrapper.resultmap.Label;
import org.beetl.sql.core.page.PageRequest;

import java.util.List;

/**
 * @author licz
 * @since 1.0.0
 */
public interface SelectWrapper<Entity, Children> {

    Class<Entity> getEntityClass();

    Children setEntityClass(Class<Entity> clazz);

    List<Select> getSelectColumns();

    Children selectAll();

    boolean isResultMap();

    List<Label<?>> getResultMapBeetlLabel();

    String getFrom();

    String getAlias();

    boolean isResultMapCollection();

    PageRequest getPageInfo();

    boolean isPageByMain();

    default void doFill(Object obj) {
    }
}
